export interface ShapeType {
  startX: number;
  startY: number;
  endX?: number;
  endY?: number;
  width?: number;
  height?: number;
  maxX?: number;
  maxY?: number;
  minX?: number;
  minY?: number;

  getType(): string;
  getLayer(): number;
  setEnd?(x: number, y: number): void;
  inside?(x: number, y: number): boolean;
  changePosition?(dX: number, dY: number): void;
  draw(ctx: CanvasRenderingContext2D): void;
}

export interface CreateImageShapeType {
  container: HTMLDivElement;
  imageLeft: number;
  imageTop: number;
  imageWidth: number;
  imageHeight: number;
  createImage(
    data: { src: string; width?: number; height?: number; left?: number; top?: number },
    confirm?: () => void,
    cancel?: () => void
  ): void;
}
